3
תגובות
האם יש דרך לשנות דברים (מיקום, גודל וכו') בלי להשתמש בclearRect של כל הקנבאס?
דרך כלשהי לכתוב את הקוד הזה בצורה יותר נוחה:
var cnv = document.getElementById('cnv'),
    ctx = cnv.getContext('2d'),
    h = cnv.height, w = cnv.width;
ctx.fillStyle = '#555';
ctx.fillRect(20,20,50,50);
ctx.strokeRect(20,20,50,50);
cnv.addEventListener('click',function(e) {
  ctx.clearRect(0,0,w,h);
  ctx.fillRect(25,20,60,50);
  ctx.strokeRect(25,20,60,50);
})


אני מחפש המון זמן את זה.. אני רואה סיפריות כמו PaperJS שמאפשרות שינויים אבל אני רוצה לדעת איך עושים את זה בקנבאס רגיל ואני לא מוצא...

3 תשובות

avatar ענה intval ב 09 לאפריל 2013 #

לא, אין דרך "להזיז" דברים ב canvas, מלבד למחוק ולצייר מחדש.
כל הספריות השונות שאתה רואה עושות את זה במקומך ולהשתמש בסיפריה כזאת תהיה בחירה חכמה

avatar ענה dekelyi ב 09 לאפריל 2013 #

תודה
רק הערה קטנה על קנבאס - הדבר הזה הוא בידיוק מה שמונע ממנה להחליף את הפלאש, כי בלי זה, היא כמו תמונה רגילה לגמרי.

avatar ענה intval ב 09 לאפריל 2013 #

אתה תמיד יכול להשתמש בספריה חיצונית לאנימציות.
גם פלאש בסופו של דבר עושה אותו דבר מתחת לפני השטח (מוחק ומצייר הכל מחדש)
הבונוס היחידי שאתה מרוויח זה כנראה תמיכה ביותר פלטפורמות ודפדפנים (אייפאד למיניהם)